home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / schema / schemasp.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1996-04-13  |  7.2 KB  |  242 lines

  1. VERSION 4.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "SchemaSpy"
  4.    ClientHeight    =   4140
  5.    ClientLeft      =   1140
  6.    ClientTop       =   1515
  7.    ClientWidth     =   6690
  8.    Height          =   4830
  9.    Left            =   1080
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   4140
  12.    ScaleWidth      =   6690
  13.    Top             =   885
  14.    Width           =   6810
  15.    WindowState     =   2  'Maximized
  16.    Begin VB.ListBox List3 
  17.       Height          =   3765
  18.       Left            =   6420
  19.       TabIndex        =   5
  20.       Top             =   765
  21.       Width           =   2760
  22.    End
  23.    Begin VB.ListBox List2 
  24.       Height          =   3765
  25.       Left            =   3435
  26.       TabIndex        =   4
  27.       Top             =   780
  28.       Width           =   2760
  29.    End
  30.    Begin VB.ListBox List1 
  31.       Height          =   3765
  32.       Left            =   450
  33.       TabIndex        =   3
  34.       Top             =   765
  35.       Width           =   2760
  36.    End
  37.    Begin VB.Label Label5 
  38.       AutoSize        =   -1  'True
  39.       Caption         =   "Double-Click Table Name for Fields and Index List"
  40.       Height          =   195
  41.       Left            =   480
  42.       TabIndex        =   7
  43.       Top             =   4740
  44.       Width           =   3525
  45.    End
  46.    Begin VB.Label Label4 
  47.       AutoSize        =   -1  'True
  48.       BeginProperty Font 
  49.          name            =   "MS Sans Serif"
  50.          charset         =   0
  51.          weight          =   700
  52.          size            =   9.75
  53.          underline       =   0   'False
  54.          italic          =   0   'False
  55.          strikethrough   =   0   'False
  56.       EndProperty
  57.       Height          =   240
  58.       Left            =   720
  59.       TabIndex        =   6
  60.       Top             =   75
  61.       Width           =   75
  62.    End
  63.    Begin VB.Label Label3 
  64.       Caption         =   "Indexes"
  65.       Height          =   225
  66.       Left            =   6390
  67.       TabIndex        =   2
  68.       Top             =   480
  69.       Width           =   1815
  70.    End
  71.    Begin VB.Label Label2 
  72.       Caption         =   "Fields (Type and size)"
  73.       Height          =   225
  74.       Left            =   3450
  75.       TabIndex        =   1
  76.       Top             =   480
  77.       Width           =   1890
  78.    End
  79.    Begin VB.Label Label1 
  80.       Caption         =   "Tables"
  81.       Height          =   195
  82.       Left            =   495
  83.       TabIndex        =   0
  84.       Top             =   510
  85.       Width           =   2160
  86.    End
  87.    Begin MSComDlg.CommonDialog CommonDialog1 
  88.       Left            =   8295
  89.       Top             =   4485
  90.       _Version        =   65536
  91.       _ExtentX        =   847
  92.       _ExtentY        =   847
  93.       _StockProps     =   0
  94.       Copies          =   2
  95.       DefaultExt      =   "mdb"
  96.       DialogTitle     =   "CD1"
  97.       Filter          =   "MSAccess  (*.mdb)|*.mdb"
  98.       FontSize        =   10
  99.       InitDir         =   "C:"
  100.    End
  101.    Begin VB.Menu MenuFile 
  102.       Caption         =   "&File"
  103.       Begin VB.Menu OpenMenu 
  104.          Caption         =   "&Open"
  105.       End
  106.       Begin VB.Menu S1 
  107.          Caption         =   "-"
  108.       End
  109.       Begin VB.Menu PrintMenu 
  110.          Caption         =   "&Print"
  111.       End
  112.       Begin VB.Menu PrintAllMenu 
  113.          Caption         =   "Print &All"
  114.       End
  115.       Begin VB.Menu S2 
  116.          Caption         =   "-"
  117.       End
  118.       Begin VB.Menu ExitMenu 
  119.          Caption         =   "E&xit"
  120.       End
  121.    End
  122. Attribute VB_Name = "Form1"
  123. Attribute VB_Creatable = False
  124. Attribute VB_Exposed = False
  125. Public DB As Database
  126. Public dbName As String
  127. Public tbldef As TableDef
  128. Public fld As Field
  129. Public Indx As Index
  130. Private Sub OpenTheDataBase()
  131.     dbName = CommonDialog1.filename
  132.     Label4.Caption = "Schema for " & dbName
  133.     Set DB = DBEngine.OpenDatabase(dbName)
  134. End Sub
  135. Private Sub SetupDataFields()
  136.     List2.Clear
  137.     List3.Clear
  138.     OpenTheDataBase
  139.     For Each tbldef In DB.TableDefs
  140.         If tbldef.Name = List1.Text Then
  141.             For Each fld In tbldef.Fields
  142.                 a$ = fld.Name & " "
  143.                 Select Case fld.Type
  144.                     Case 8: a$ = a$ & ":    Date / Time"
  145.                     Case 10: a$ = a$ & ":   Text " & fld.Size
  146.                     Case 12: a$ = a$ & ":   Memo"
  147.                     Case 1: a$ = a$ & ":    Yes / No"
  148.                     Case 3: a$ = a$ & ":    Integer"
  149.                     Case 4: a$ = a$ & ":    Long"
  150.                     Case 5: a$ = a$ & ":    Currency"
  151.                     Case 6: a$ = a$ & ":    Single"
  152.                     Case 7: a$ = a$ & ":    Double"
  153.                     Case 2: a$ = a$ & ":    Byte"
  154.                     Case 11: a$ = a$ & ":   Long Binary"
  155.                 End Select
  156.                 List2.AddItem a$
  157.             Next
  158.             For Each Indx In tbldef.Indexes
  159.                 List3.AddItem Indx.Name
  160.             Next
  161.         End If
  162.     Next
  163. End Sub
  164. Private Sub SetupDataTables()
  165.     List1.Clear
  166.     List2.Clear
  167.     List3.Clear
  168.     OpenTheDataBase
  169.     For Each tbldef In DB.TableDefs
  170.         If InStr(tbldef.Name, "MSys") = 0 Then _
  171.             List1.AddItem tbldef.Name
  172.     Next
  173. End Sub
  174. Private Sub ExitMenu_Click()
  175.     Unload Me
  176.     End
  177. End Sub
  178. Private Sub Form_Unload(Cancel As Integer)
  179.     Close
  180. End Sub
  181. Private Sub List1_DblClick()
  182.     SetupDataFields
  183. End Sub
  184. Private Sub OpenMenu_Click()
  185.     CommonDialog1.ShowOpen
  186.     SetupDataTables
  187. End Sub
  188. Private Sub PrintAllMenu_Click()
  189.     Printer.Print "Schema of " & dbName
  190.     Printer.Print
  191.     OpenTheDataBase
  192.     For Each tbldef In DB.TableDefs
  193.         If InStr(tbldef.Name, "MSys") = 0 Then
  194.             Printer.Print tbldef.Name
  195.             Printer.Print
  196.             For Each fld In tbldef.Fields
  197.                 a$ = Chr$(9) & fld.Name & Chr$(9)
  198.                 Select Case fld.Type
  199.                     Case 8: a$ = a$ & ":    Date / Time"
  200.                     Case 10: a$ = a$ & ":   Text " & fld.Size
  201.                     Case 12: a$ = a$ & ":   Memo"
  202.                     Case 1: a$ = a$ & ":    Yes / No"
  203.                     Case 3: a$ = a$ & ":    Integer"
  204.                     Case 4: a$ = a$ & ":    Long"
  205.                     Case 5: a$ = a$ & ":    Currency"
  206.                     Case 6: a$ = a$ & ":    Single"
  207.                     Case 7: a$ = a$ & ":    Double"
  208.                     Case 2: a$ = a$ & ":    Byte"
  209.                     Case 11: a$ = a$ & ":   Long Binary"
  210.                 End Select
  211.                 Printer.Print a$
  212.             Next
  213.         End If
  214.         Printer.Print
  215.         On Error GoTo done
  216.         For Each Indx In tbldef.Indexes
  217.                 Printer.Print Chr$(9) & Indx.Name
  218.         Next
  219.     Next
  220. done:
  221.     Printer.EndDoc
  222. End Sub
  223. Private Sub Tables_DblClick()
  224.     SetupDataFields
  225. End Sub
  226. Private Sub PrintMenu_Click()
  227.     Printer.Print "Schema for " & dbName
  228.     Printer.Print "Table " & List1.Text
  229.     Printer.Print
  230.     For j = 0 To List2.ListCount - 1
  231.         List2.ListIndex = j
  232.         Printer.Print Chr$(9) & List2.Text
  233.     Next
  234.     Printer.Print
  235.     Printer.Print "Indexes"
  236.     For j = 0 To List3.ListCount - 1
  237.         List3.ListIndex = j
  238.         Printer.Print Chr$(9) & List3.Text
  239.     Next
  240.     Printer.EndDoc
  241. End Sub
  242.